//1.函数定义类型和返回值|箭头函数定义类型和返回值
//2.函数默认的参数|函数可选参数
//3.参数是一个对象如何定义
//4.函数this类型
//5.函数重载
function add(a, b) {
    return a + b;
}
console.log(add(1, 2));
const add2 = (a, b) => (a + b);
console.log(add2(3, 4));
const add3 = (a = 10, b = 20) => (a + b);
console.log(add3(1));
function getUser(user) {
    return user;
}
const user = getUser({ name: "小孙", age: 18 });
console.log(user);
// ts  可以定义this的类型  在js中无法使用  必须是第一个参数定义this的类型
let obj = {
    user: [1, 2, 3],
    add(num) {
        this.user.push(num);
    }
};
obj.add(4);
console.log(obj);
let userObj = [1, 2, 3];
function findNum(ids) {
    if (typeof ids == 'number') {
        return userObj.filter(item => item == ids);
    }
    else if (Array.isArray(ids)) {
        userObj.push(...ids);
        return userObj;
    }
    else {
        return userObj;
    }
}
console.log(findNum());
console.log(findNum(1));
console.log(findNum([4, 5, 6]));
console.log(findNum([1, 2, 3]));
